Festa de Pizza

Descrição

Panucci's Pizza tem um modelo de preço estranho para suas pizzas:

  • Suas pizzas podem ser 'small' (pequena), 'medium (média) ou 'large' (grande). O custo básico de uma pizza pequena é 14. O custo básico de uma pizza média é 16. E o custo básico para uma pizza grande é 18.
  • A $n$-ésima cobertura ("topping") na pizza custa $12+n+m$% do custo da pizza até então, em que $m$ é o comprimento da string representando o nome da cobertura. Observe que começamos a contar $n$ de 0.
  • Depois de calcular o custo total da pizza dessa forma, se a pizza contiver 'bacon' ou 'anchovas', haverá uma taxa adicional de 10% do custo da pizza.

Escreva um programa que calcule o custo de uma pizza sob este modelo. As primeiras duas linhas devem definir variáveis chamadas size e toppings para armazenar o tamanho da pizza (uma string small, medium, ou large) e uma lista de coberturas, por exemplo:

size = 'small'
toppings = ['presunto', 'abacaxi']

Se uma cobertura estiver duas vezes na lista, suponha que o cliente deseje o dobro dessa cobertura. De uma perspectiva de custo, isso deve ser tratado como uma cobertura adicional.

Mas a taxa extra para bacon ou anchovas é aplicada apenas uma vez, no final do cálculo do preço (mesmo que, por exemplo, bacon esteja duas vezes na lista de coberturas ou bacon e anchovas estejam na lista).

Seu programa deve atribuir o custo total total da pizza a uma variável out. Embora os valores monetários sejam normalmente arredondados para o centavo mais próximo, vamos ignorar isso e assumir que centavos fracionários também são adequados. Dito isso, você pode arredondar, se desejar: você pode usar algo como out = round(x, 2) para calcular uma versão de x arredondada para duas casas decimais.

Por exemplo, uma pizza média com atum, cebola e abacaxi custa 26.724544 (26.72 arredondado), calculado da seguinte maneira:

  • o custo básico de uma pizza média é 16
  • a primeira cobertura ($n=0$) é 'atum' ($m=4$) e, portanto, custa 16% do custo até agora (16), então 2.56.
  • a segunda cobertura ($n=1$) é 'cebola' ($m=6$) e custa 19% do custo até agora (18.56), então 3.5264.
  • a terceira cobertura ($n=2$) é 'abacaxi' ($m=7$) e custa 21% do custo até agora (22.0864), então 4.638144.
  • uma vez que não contém bacon ou anchovas, não há custo adicional

Notas

  • Você deve primeiro resolver o problema usando lápis e papel ou com uma calculadora para alguns exemplos de listas de coberturas (é difícil escrever um programa até que você tenha descoberto como resolver o problema!).
  • Pode ser útil começar escrevendo um programa mais simples (por exemplo, um que ignore a cobrança extra para coberturas especiais). Você pode então verificar se há erros nessa parte antes de adicionar novos recursos.
  • Os custos de algumas das pizzas nos casos de teste podem ficar bem altos, e algumas das combinações de sabores provavelmente não têm um sabor muito bom. Mas talvez esteja tudo bem. Provavelmente ainda é útil como algo que pode ser postado no Instagram ou algo assim?

Submissão

Quando estiver pronto (depois de ter simulado manualmente e testado em sua própria máquina e estiver convencido de que seu programa fará a coisa certa), faça upload do seu arquivo Python no Problema 1.5 no Gradescope. Lembre de nomear seu arquivo p1_5.py.